FIELD #1, 2 AS NEXT.REC$: LSET NEXT.REC$ = MKI$(1): PUT #1, 1
FOR L% = 2 TO maxrecords%
LSET NEXT.REC$ = MKI$(0): PUT #1, L%
NEXT L%
CLOSE #1
LOCATE 14, 10: PRINT "CREATING INDEX FILE .IDX"; SPC(20);
FOR L% = 65 TO 90
LOCATE 14, 30: PRINT CHR$(L%); : index.file$ = IN.STRING$ + CHR$(L%) + ".IDX": OPEN "R", #1, index.file$, 2: FIELD #1, 2 AS REC.PTR$
LSET REC.PTR$ = MKI$(1): PUT #1, 1: CLOSE #1
NEXT L%: RETURN
IF ERL = usrprmt THEN RESUME am8format
5500 'CLEAR HELP
5505 COLOR 15, 2: FOR v = 22 TO 24
LOCATE v, 5: PRINT SPC(68);
NEXT v: RETURN'Clear Help
6100 'READ PAT REC
F$ = PAT.PATH$ + "RECORD.IDX": BLANK.REC% = 0: OPEN "R", #5, F$, 2: FIELD #5, 2 AS RI.LAST.REC$: GET #5, CLIENT.NUM%: RI.LAST.REC% = CVI(RI.LAST.REC$): CLOSE #5: IF RI.LAST.REC% = 0 THEN BLANK.REC% = 1: RETURN
F$ = PAT.PATH$ + "CLIENT.APT": OPEN "R", #1, F$, 84
FIELD #1, 20 AS LAST.NAME$, 20 AS FIRST.NAME$, 17 AS NEXT.APT$, 17 AS LAST.APT$, 10 AS NOTES$: GET #1, RI.LAST.REC%
FIELD #1, 2 AS NEXT.REC$: LSET NEXT.REC$ = MKI$(1): PUT #1, 1
FOR L% = 2 TO maxrecords%
LSET NEXT.REC$ = MKI$(0): PUT #1, L%
NEXT L%
CLOSE #1
LOCATE 14, 10: PRINT "CREATING INDEX FILE .IDX"; SPC(20);
FOR L% = 65 TO 90
LOCATE 14, 30: PRINT CHR$(L%); : index.file$ = IN.STRING$ + CHR$(L%) + ".IDX": OPEN "R", #1, index.file$, 2: FIELD #1, 2 AS REC.PTR$
LSET REC.PTR$ = MKI$(1): PUT #1, 1: CLOSE #1
NEXT L%: RETURN
OPEN "R", #1, F$, 2
FIELD #1, 2 AS NEXT.REC$: LSET NEXT.REC$ = MKI$(1): PUT #1, 1
FOR L% = 2 TO maxrecords%
LSET NEXT.REC$ = MKI$(0): PUT #1, L%
NEXT L%
CLOSE #1
'Dummy Record
API$(1) = "Angelo"
API$(2) = "Michael Genius"
API$(3) = "123 Champions Dr"
API$(4) = "Houston"
API$(5) = "Tx"
API$(6) = "77055-5555"
API$(7) = "(713)555-5555"
API$(8) = "(409)555-1212"
API$(9) = "1650.00"
API$(10) = " 123.65"
API$(11) = "1526.35"
API$(12) = " 45.00"
API$(13) = "06-15-1988"
API$(14) = "Will pay 9-15 "
API$(15) = "06-25-1988"
API$(16) = " 35.00"
CLIENT.NUM% = 2
GOSUB initrec
WRITECLIENTREC:
F$ = CLIENT.PATH$ + "CLIENT.APT": OPEN "R", #1, F$, 185
FIELD #1, 20 AS LAST.NAME$, 20 AS FIRST.NAME$, 20 AS STREET$, 17 AS CITY$, 2 AS STATE$, 10 AS ZIP$, 13 AS TELE1$, 13 AS TELE2$, 7 AS TOTAL$, 7 AS DWNPAY$, 7 AS BAL$, 7 AS MOPMT$, 10 AS DUEDATE$, 15 AS NOTES$, 10 AS PMTDATE$, 7 AS AMTPAID$: _
GET #1, RI.LAST.REC%
LSET LAST.NAME$ = API$(1)
LSET FIRST.NAME$ = API$(2)
LSET STREET$ = API$(3)
LSET CITY$ = API$(4)
LSET STATE$ = API$(5)
LSET ZIP$ = API$(6)
LSET TELE1$ = API$(7)
LSET TELE2$ = API$(8)
LSET TOTAL$ = API$(9)
LSET DWNPAY$ = API$(10)
LSET BAL$ = API$(11)
LSET DUEDATE$ = API$(13)
LSET MOPMT$ = API$(12)
LSET NOTES$ = API$(14)
LSET PMTDATE$ = API$(15)
LSET AMTPAID$ = API$(16)
PUT #1, RI.LAST.REC%
CLOSE #1
RETURN
initrec:
F$ = CLIENT.PATH$ + "RECORD.IDX": OPEN "R", #5, F$, 2: FIELD #5, 2 AS RI.LAST.REC$: GET #5, 1: RI.LAST.REC% = CVI(RI.LAST.REC$) + 1: LSET RI.LAST.REC$ = MKI$(RI.LAST.REC%): PUT #5, 1
OPEN "R", #3, index.file$, 2: FIELD #3, 2 AS AI.LAST.REC$: GET #3, 1: AI.LAST.REC% = CVI(AI.LAST.REC$) + 1: LSET AI.LAST.REC$ = MKI$(AI.LAST.REC%): PUT #3, 2: CLOSE : RETURN
delapt:
v = 10: h = 30: num.err% = 0: APT.DATE.STR$ = ""
COLOR fc%, bc%: CLS
LOCATE 1, 1: PRINT " Directory "; APT.PATH$; " contains the following Appointment Files. ";
LOCATE 4, 1: FILES "" + APT.PATH$ + "A?????.APT"
entre:
MONTH.TP% = 0: DAY.TP% = 0: YEAR.TP% = 0: LY = 0
SOUND 100, 2: IN.STRING$ = ""
LOCATE 23, 66: PRINT SPC(15);
center 24, "Press ESC to exit"
LOCATE 23, 18: PRINT "Delete appointments PRIOR to what date? (mmddyy)"; : GOSUB 490
FOR vc% = 8 TO 19: LOCATE vc%, 5: PRINT STRING$(60, 32); : NEXT vc%
RETURN
uh.oh:
CALL upcase(FIL$): a$ = "Path not found to " + FIL$ + " -> Press any key": center 12, a$
RETURN
bad.news:
a$ = INPUT$(1)
inflg% = 1
bail.out:
END SUB
DEFSNG A-Z
SUB menu (fgd, BKGD, brdr, PAT.PATH$, APT.PATH$, PROG.NAME$, PRINTER$, ver$, fc%, bc%, TODAY.DATE.STR$, inflg%, SYS.PATH$)
'This is the heart of the program.
COLOR fgd, BKGD, brdr
REM
REM
step1:
a$ = ver$
CALL center(23, a$)
a$ = TODAY.DATE.STR$
LOCATE 2, 60: PRINT a$;
row = 8: col = 20: ' SET ROW AND COLUMN FOR MENU
C1F = fgd: C1B = BKGD' SET COLOR CODES
C2F = BKGD: C2B = fgd: ' SET BAR COLOR TO COLOR 0,2
'M$(1) = "ADD A NAME": M$(2) = "UPDATE A NAME": M$(3) = "DELETE A NAME": M$(4) = "FIND A NAME": M$(5) = "FILTER THE LIST": M$(6) = "SORT THE LIST": M$(7) = "PRINT THE LIST": M$(8) = "QUIT THE PROGRAM"
'np = 8:
'
step2:
GOSUB step3
CLS
GOTO menu.end
GOTO step1
GOTO step2
'
'
step3:
COLOR C1F, C1B: ' CLS
CALL center(7, "MENU SELECTIONS")
CALL center(row + 1, "Use <ARROWS> to select <ENTER> to Choose")
FOR J = 1 TO 16: x$ = INKEY$: NEXT: CH = 1
LS = 2: FOR J = 1 TO np: IF LEN(m$(J)) > LS THEN LS = LEN(m$(J))